package org.example.aspect;

import org.aspectj.lang.JoinPoint;
import org.springframework.stereotype.Component;

@Component("Aspect1b")
public class Aspect1b
{
    //前置通知的：方法运行之前增强
    //应用： 权限控制 （权限不足，抛出异常）、 记录方法调用信息日志
    //参数：org.aspectj.lang.JoinPoint
    //参数：连接点对象（方法的包装对象:方法，参数，目标对象）
    public void before(JoinPoint joinPoint){
        //分析：抛出异常拦截的
        //当前登录用户
        String loginName = "Rose";
        System.out.println("方法名称："+joinPoint.getSignature().getName());
        System.out.println("目标对象："+joinPoint.getTarget().getClass().getName());
        System.out.println("代理对象："+joinPoint.getThis().getClass().getName());
        //判断当前用户有没有执行方法权限
//        if(joinPoint.getSignature().getName().equals("find"))
//        {
//            if(!loginName.equals("admin")){
//                //只有超级管理员admin有权限，其他人不能执行某个方法，比如查询方法
//                throw new RuntimeException("您没有权限执行方法："+joinPoint.getSignature().getName()+"，类型为："+joinPoint.getTarget().getClass().getName());
//            }
//        }

    }
}
